<?php
require_once "login.php";
require_once 'Model/Usuario.php';
require_once 'DAO/DAOUsuario.php';
require_once 'DAO/DAOEndereco.php';
require_once 'DAO/DAOBairro.php';
require_once 'DAO/DAOCidade.php';
require_once 'DAO/DAORepublica.php';
require_once 'DAO/DAOUsuarioRepublica.php';
require_once 'DAO/DAOImagemRepublica.php';

class EditarRepublicaController {

    private $republica;

    function EditarRepublicaController() {
        if (LoginController::singleton()->estaConectado()) {
            if ($this->republica = LoginController::singleton()->getUsuario()->getRepublicaAtual()) {
                $this->verificaUpdate();
                $this->verificaUpdateImagemRepublica();
                $this->verificaRemoverImagensRepublica();
                $this->verificaAddImagensRepublica();
                require_once 'viewEditarRepublica.php';
            } else {
                require_once 'viewPrincipal.php';
            }
        } else {
            require_once 'viewPrincipal.php';
        }
    }

    function verificaUpdate() {
        if (!empty($_POST)) {
            if (!empty($_POST['formUpdateRepublica'])) {
                if ($this->updateRepublica($this->republica)) {
                    
                }
            }
        }
    }

    function verificaAddImagensRepublica() {
        if (isset($_POST['formAddImagensRepublica'])) {
            $idRepublica = $this->getRepublica()->getCodigo();
            Upload::uploadImagem($_FILES['edtAddFotos'], "republicas/R$idRepublica-" . time() . "-F", new DAOImagemRepublica(), $this->getRepublica(), "N");
        }
    }

    function verificaRemoverImagensRepublica() {
        if (isset($_POST['formRemoverImagensRepublica'])) {
            $DAOImagemRepublica = new DAOImagemRepublica();
            $imagem = new Imagem();
            foreach ($_POST['edtRemoverImagens'] as $codImagem) {
                $imagem->setCodigo($codImagem);
                $DAOImagemRepublica->removeImagem($imagem);
            }
        }
    }

    function verificaUpdateImagemRepublica() {
        if (isset($_POST['formUpdateImagemRepublica'])) {
            $idRepublica = $this->getRepublica()->getCodigo();
            Upload::uploadImagem($_FILES['edtUpdateFoto'], "republicas/R$idRepublica-" . time() . "-F0.jpg", new DAOImagemRepublica(), $this->getRepublica());
        }
    }

    function updateRepublica(Republica $republica) {
        $republica->setNome($_POST['edtNome']);
        $republica->setDescricaoEndereco($_POST['edtDescricao']);

        $de = new DAOEndereco();
        if (!empty($_POST['edtEndereco'])) {
            $de = new DAOEndereco();
            $endereco = $de->getEnderecoByDescricao($_POST['edtEndereco']);
            if ($endereco == NULL) {
                $endereco = $de->addEndereco(new Endereco(1, $_POST['edtEndereco']));
            }
            $republica->setEndereco($endereco);
        }

        $republica->setNumero($_POST['edtNumero']);

        $db = new DAOBairro();
        $bairro = $db->getBairroByDescricao($_POST['edtBairro']);
        if ($bairro == NULL) {
            $bairro = $db->addBairro(new Bairro(0, $_POST['edtBairro']));
        }
        $republica->setBairro($bairro);

        $dc = new DAOCidade();
        $cidade = $dc->getCidade($_POST['edtCidade']);
        $republica->setCidade($cidade);

        $republica->setQuantiaVagas($_POST['edtVagas']);

        $dr = new DAORepublica();
        $dr->updateRepublica($republica);
    }

    function getImagensRepublica(Republica $republica) {
        ?>
        <img class="img-polaroid span12" style="margin: 0px;" src="/img/<? echo $republica->getImagemPrincipal()->getImagem(); ?>" alt="photo">
        <form class="form-horizontal" method="POST" action="" enctype="multipart/form-data"> 
            <input type="hidden" name="formUpdateImagemRepublica" value="formUpdateImagemRepublica"/>
            <input class="span12" type="file" name="edtUpdateFoto"/>
            <button type="submit" class="btn span12" style="margin: 0px;">Atualizar Imagem</button>
        </form>
        <br>
        <div class="row-fluid">
            <?
            $image = $republica->getImagens(4);
            foreach ($image as $img) {
                echo '<img class="img-polaroid span3" src="/img/' . ($img->getImagem()) . '" alt="photo">';
            }
            ?>
        </div>
        <a href="#modalUpdateImagensRepublica" role="button" class="btn span12" style="margin: 0px;" data-toggle="modal">Atualizar Imagens</a>
        <div id="modalUpdateImagensRepublica" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                <h3 id="myModalLabel">Atualizar Imagens</h3>
            </div>
            <div class="modal-body">
                <form method="POST" action="">
                    <div class="span12">
                        <input type="hidden" name="formRemoverImagensRepublica" value="formRemoverImagensRepublica"/>
                        <?
                        $image = $republica->getImagens();
                        foreach ($image as $img) {
                            ?>
                            <div class="control-group span3" style="margin: 0px;">
                                <img class="img-polaroid span12" src="/img/<? echo $img->getImagem() ?>" alt="photo">
                                <div class="controls">
                                    <input type="checkbox" name="edtRemoverImagens[]" value="<? echo $img->getCodigo(); ?>">Remover</input>
                                </div>
                            </div>

                            <?
                        }
                        ?>
                    </div>
                    <div class="container">
                        <button type="submit" class="btn">Remover Imagens Selecionadas</button>
                    </div>
                </form>
                <hr class="clearfix"/>
                <form class="form-horizontal" method="POST" action="" enctype="multipart/form-data"> 
                    <input type="hidden" name="formAddImagensRepublica" value="formAddImagensRepublica"/>
                    <input class="span12" type="file" multiple="multiple" name="edtAddFotos[]"/>
                    <button type="submit" class="btn">Adicionar Imagens</button>
                </form>
            </div>
            <div class="modal-footer">
                <button class="btn" data-dismiss="modal" aria-hidden="true">Fechar</button>
            </div>
        </div>

        <?
    }
    
    function getMoradores(Republica $republica) {

        $usuariosRepublica = $republica->getMoradores();

        if ($usuariosRepublica != NULL) {
            ?>
            <table class="table table-striped">
                <?
                foreach ($usuariosRepublica as $usu) {
                    ?>
                    <tr>
                        <td><img src="/img/icon-Empresa.png" style="max-height: 20px; min-height: 20px;"/></td>
                        <td><? echo $usu->getUsuario()->getNome(); ?></td>
                    </tr>
                    <?
                }
                ?>

            </table>
            <?
        }
    }

    public function getRepublica() {
        return $this->republica;
    }

}
?>
